package visitor_pattern;

import java.util.ArrayList;

/**
 * @author 申书航
 * @version 1.0
 *
 * 客户组类，实现了可访问接口，用于管理客户列表。
 */
public class CustomerGroup implements IVisitable {

    private final ArrayList<Customer> customers;

    /**
     * 构造函数，初始化客户列表。
     */
    public CustomerGroup() {
        this.customers = new ArrayList<>();
    }

    /**
     * 接受访问者，遍历所有客户并调用其接受方法。
     * @param visitor 访问者对象
     */
    @Override
    public void accept(IVisitor visitor) {
        customers.forEach(customer -> customer.accept(visitor));
    }

    /**
     * 添加客户到客户列表中。
     * @param customer 要添加的客户
     */
    public void addCustomer(Customer customer) {
        customers.add(customer);
    }
}

